package main

//
//func recv(c chan int) {
//	ret := <-c
//	fmt.Println("接收成功", ret)
//}
//func main() {
//	ch := make(chan int)
//	go recv(ch) // 启用goroutine从通道接收值
//	ch <- 10
//	fmt.Println("发送成功")
//}

//
//func main() {
//	var ch1 chan int   // 声明一个传递整型的通道
//	//var ch2 chan bool  // 声明一个传递布尔型的通道
//	//var ch3 chan []int // 声明一个传递int切片的通道
//	fmt.Println(ch1)
//	ch4 := make(chan int,2)
//	//ch5 := make(chan int,1)
//	fmt.Println(ch4)
//        //发送
//	ch4<- 10 // 把10发送到ch中
//	x:=<-ch4
//	fmt.Println(x)
//	//time.Sleep(time.Second)
//}
//func add(a []int)  {
//	a[0]=2222
//}


//func counter(out chan<- int) {
//	for i := 0; i < 100; i++ {
//		out <- i
//	}
//	close(out)
//}
//
//func squarer(out chan<- int, in <-chan int) {
//	for i := range in {
//		out <- i * i
//	}
//	close(out)
//}
//func printer(in <-chan int) {
//	for i := range in {
//		fmt.Println(i)
//	}
//}
//
//func main() {
//	ch1 := make(chan int)
//	ch2 := make(chan int)
//	go counter(ch1)
//	go squarer(ch2, ch1)
//	printer(ch2)
//}